home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / prolog / brklyprl.lha / Emulator / Tests / names.w < prev    next >
Encoding:
Text File  |  1989-04-14  |  2.4 KB  |  151 lines

  1. procedure  main/0
  2.  
  3. _629:
  4.     put_list  X1
  5.     unify_variable_write_x  X3
  6.     get_cdr_list_write
  7.     unify_variable_write_x  X4
  8.     unify_nil_write
  9.     get_structure  rule/2,X3,2
  10.     unify_constant  &2
  11.     unify_variable_x  X3
  12.     get_list  X3
  13.     unify_constant  m
  14.     get_cdr_list
  15.     unify_constant  i
  16.     get_cdr_list
  17.     unify_constant  i
  18.     unify_nil
  19.     get_structure  rule/2,X4,2
  20.     unify_constant  &2
  21.     unify_variable_x  X3
  22.     get_list  X3
  23.     unify_constant  m
  24.     get_cdr_list
  25.     unify_constant  i
  26.     get_cdr_list
  27.     unify_constant  i
  28.     get_cdr_list
  29.     unify_constant  i
  30.     get_cdr_list
  31.     unify_constant  i
  32.     unify_nil
  33.     put_constant  &0,X2
  34.     execute_proc  print_results/2
  35.  
  36.  
  37. procedure  print_results/2
  38.  
  39.     switch_on_term  _1708,_1709,fail
  40. _1714:
  41.     try_me_else  _1719,2
  42. _1708:
  43.     get_nil  X1
  44.     proceed
  45. _1719:
  46.     trust_me_else  fail
  47. _1709:
  48.     get_list  X1
  49.     unify_variable_x  X5
  50.     unify_variable_y  Y2
  51.     get_structure  rule/2,X5,2
  52.     unify_variable_y  Y4
  53.     unify_variable_x  X5
  54.     put_variable_y  Y1,X1
  55.     put_constant  +,X3
  56.     put_constant  &1,X4
  57.     escape  is/4
  58.     put_variable_y  Y3,X1
  59.     put_value_x  X5,X2
  60.     call  implode/2,4
  61.     put_value_y  Y1,X1
  62.     escape  write/1
  63.     put_constant  '  ',X1
  64.     escape  write/1
  65.     put_value_y  Y4,X1
  66.     call  print_rule/1,3
  67.     put_unsafe_value  Y3,X1
  68.     escape  write/1
  69.     escape  nl/0
  70.     put_value_y  Y2,X1
  71.     put_unsafe_value  Y1,X2
  72.     execute_proc  print_results/2
  73.  
  74.  
  75. procedure  print_rule/1
  76.  
  77.     switch_on_term  _2808,_2809,_2809
  78. _2808:
  79.     try_me_else  _2819,1
  80. _2823:
  81.     get_constant  &0,X1
  82.     put_constant  'axiom    ',X1
  83.     escape  write/1
  84.     proceed
  85. _2819:
  86.     trust_me_else  fail
  87. _2809:
  88.     get_variable_x  X3,X1
  89.     put_value_x  X3,X1
  90.     put_constant  &0,X2
  91.     escape  =\=/2
  92.     put_constant  'rule ',X1
  93.     escape  write/1
  94.     put_value_x  X3,X1
  95.     escape  write/1
  96.     put_constant  '   ',X1
  97.     escape  write/1
  98.     proceed
  99.  
  100.  
  101. procedure  explode/2
  102.  
  103. _3503:
  104.     get_variable_x  X3,X2
  105.     put_variable_x  X2,X2
  106.     escape  name/2
  107.     put_value_x  X3,X1
  108.     execute_proc  name_list/2
  109.  
  110.  
  111. procedure  implode/2
  112.  
  113. _3883:
  114.     get_variable_y  Y2,X1
  115.     put_value_x  X2,X1
  116.     put_variable_y  Y1,X2
  117.     call  name_list/2,2
  118.     put_value_y  Y2,X1
  119.     put_unsafe_value  Y1,X2
  120.     escape  name/2
  121.     proceed
  122.  
  123.  
  124. procedure  name_list/2
  125.  
  126.     switch_on_term  _4490,_4491,fail
  127. _4496:
  128.     try_me_else  _4501,2
  129. _4490:
  130.     get_nil  X1
  131.     get_nil  X2
  132.     proceed
  133. _4501:
  134.     trust_me_else  fail
  135. _4491:
  136.     get_list  X1
  137.     unify_variable_x  X1
  138.     unify_variable_x  X3
  139.     get_list  X2
  140.     unify_variable_x  X4
  141.     unify_variable_x  X5
  142.     put_list  X2
  143.     unify_value_write_x  X4
  144.     unify_nil_write
  145.     escape  name/2
  146.     put_value_x  X3,X1
  147.     put_value_x  X5,X2
  148.     execute_proc  name_list/2
  149.  
  150.  
  151.